package com.py.credit.dao;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.py.credit.entity.DoubleCfInfo;
import com.py.credit.entity.DoubleXkInfo;
import com.py.credit.entity.FrcfDouble;
import com.py.credit.entity.FrxkDouble;
import com.py.credit.entity.SortDoubleData;
import com.py.credit.entity.ZrrcfDouble;
import com.py.credit.entity.ZrrxkDouble;
import com.py.framework.core.common.Page;

public interface DoublePublicityDao {

	public List<Object[]> xzxk();

	public List<Object[]> xzxkxyzt();

	public List<Object[]> xzxktop();

	public List<Object[]> doublePublicityRate();

	public List<Object[]> xzcf();

	public List<Object[]> xzcfxyzt();

	public List<Object[]> xzcftop();

	public List<LinkedHashMap> centralmapSingle(String dfbm);

	public List<Map> centralmapAll();
	
	public List<Map> countSumByDate(@Param(value = "date") String date);
	
	public List<Map> countSumByDataAndDeptTop3(@Param(value = "date") String date);
	
	public List<Map> countSumByDept(@Param(value = "date") String date);
	
	public Integer countSum(@Param(value = "date") String date);

	public Long countZrrXzxk();

	public Long countFrXzxk();

	public Long countZrrXzcf();

	public Long countFrXzcf();

	public void insertCentralMap(@Param(value = "qybm") String qybm, @Param(value = "qymc") String qymc,
			@Param(value = "newcount") Long newcount, @Param(value = "lastcount") Long lastcount,
			@Param(value = "rate") double rate);

	public Long countZrrXzxkbydate(Map<String, Integer> map);

	public Long countFrXzxkByDate(Map<String, Integer> map);

	public Long countZrrXzcfByDate(Map<String, Integer> map);

	public Long countFrXzcfByDate(Map<String, Integer> map);

	public List<Map<String, Integer>> countPercentByMeasure();

	public Long countDataByDate(Map<String, Integer> map);

	public List<SortDoubleData> queryallDataByDeptName();

	public List<FrcfDouble> queryFrcfDataByA000001AndA000002ForPage(@Param(value = "params1") String params1,
			@Param(value = "page") Page page);

	public List<FrxkDouble> queryFrxkDataByA000001AndA000002ForPage(@Param(value = "params1") String params1,
			@Param(value = "page") Page page);

	public List<ZrrxkDouble> queryZrrxkDataByA000001AndA000002ForPage(@Param(value = "params2") String params2,
			@Param(value = "page") Page page);

	public List<ZrrcfDouble> queryZrrcfDataByA000001AndA000002ForPage(@Param(value = "params2") String params2,
			@Param(value = "page") Page page);

	public List<Map<String,Object>> selectFrxkByColumnForPage(@Param(value = "params1") String params1,
			@Param(value = "page") Page page, @Param(value = "record_id")String record_id);

	public List<Map<String,Object>> selectZrrxkByColumnForPage(@Param(value = "params2") String params2,
			@Param(value = "page") Page page, @Param(value = "record_id")String record_id);

	public List<Map<String,Object>> selectFrcfByColumnForPage(@Param(value = "params1") String params1,
			@Param(value = "page") Page page, @Param(value = "record_id")String record_id);

	public List<Map<String,Object>> selectZrrcfByColumnForPage(@Param(value = "params2") String params2,
			@Param(value = "page") Page page, @Param(value = "record_id")String record_id);
	public List<Map<String,Object>> selectHonfrByColumnForPage(@Param(value = "params2") String params2,
			@Param(value = "page") Page page, @Param(value = "record_id")String record_id);
	public List<Map<String,Object>> selectHeifrByColumnForPage(@Param(value = "params2") String params2,
			@Param(value = "page") Page page, @Param(value = "record_id")String record_id);
	public List<Map<String,Object>> selectImpByColumnForPage(@Param(value = "params2") String params2,
			@Param(value = "page") Page page, @Param(value = "record_id")String record_id);

	public List<Map<String,Object>> selectJyycmlByColumnForPage(@Param(value = "params2") String params2,
			@Param(value = "page") Page page, @Param(value = "record_id")String record_id);

	
	/**
	 * @Title: countPercentHhByMeasure
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @return    设定文件
	 * @return List<Map<String,Integer>>    返回类型
	 * @throws
	*/
	
	public List<Map<String, Integer>> countPercentHhByMeasure();

	
	
	
	public Object countDataHhByDate(Map<String, Integer> map);

	
	/**
	 * @Title: queryallHhDataByDeptName
	 * @Description: TODO(这里用一句话描述这个方法的作用)
	 * @param @return    设定文件
	 * @return List<SortDoubleData>    返回类型
	 * @throws
	*/
	
	public List<SortDoubleData> queryallHhDataByDeptName();
}
